#include <iostream>
using namespace std;
#include "LecteurPhraseAvecArbre.h"
#include "Exception.h"

int main(int argc, char* argv[]) {
	string nomFich;
	if (argc != 2) {
		cout << "Usage : " << argv[0] << " nom_fichier_source" << endl << endl;
		cout << "Entrez le numero du programme que voulez-vous interpreter : ";
                cin>>nomFich;
                nomFich="programme"+nomFich+".txt";
	} else
		nomFich=argv[1];


	LecteurPhraseAvecArbre lp(nomFich);
        try{lp.analyse();}
        catch (EX_ERREUR_SYNTAXE){
           cout <<endl<<  "Le programme :\""<<nomFich<<"\" ne peut pas etre interpreté car il contient des erreurs de syntaxe" << endl; 
           return 0; 
        }
        
                
	cout << endl << "Arbre Abstrait : " << endl;
	cout         << "================"  << endl;
	lp.getArbre()->afficher();
	cout << endl << "Table des symboles avant evaluation : " << lp.getTs();
	cout << endl << "Evaluation de l'arbre (interpretation)..." << endl;
	lp.getArbre()->getValeur();
	cout << endl << "Table des symboles apres evaluation : " << lp.getTs();
	return 0;
}
